package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiSubsidyApplicationPayNotice;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationpaynotice.LindiSubsidyApplicationPayNoticeQueryVO;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationpaynotice.LindiSubsidyApplicationPayNoticeVO;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 林地指标交易平台_补贴申请支付通知表 服务层。
 *
 * @author 11987
 * @since 2025-06-11
 */
public interface LindiSubsidyApplicationPayNoticeService extends IService<LindiSubsidyApplicationPayNotice>{

    /**
     * 添加补贴申请支付通知
     *
     * @param subsidyApplicationPayNoticeVO 补贴申请支付通知VO
     */
    void addSubsidyApplicationPayNotice(LindiSubsidyApplicationPayNoticeVO subsidyApplicationPayNoticeVO);

    /**
     * 根据补贴申请支付通知ID删除补贴申请支付通知
     *
     * @param subsidyApplicationPayNoticeId 补贴申请支付通知ID
     */
    void deleteSubsidyApplicationPayNoticeBySubsidyApplicationPayNoticeId(Long subsidyApplicationPayNoticeId);

    /**
     * 根据补贴申请支付通知ID更新补贴申请支付通知
     *
     * @param subsidyApplicationPayNoticeVO 补贴申请支付通知VO
     */
    void updateSubsidyApplicationPayNoticeBySubsidyApplicationPayNoticeId(
            LindiSubsidyApplicationPayNoticeVO subsidyApplicationPayNoticeVO);

    /**
     * 分页查询补贴申请支付通知列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiSubsidyApplicationPayNoticeVO> getPageSubsidyApplicationPayNoticeList(
            LindiSubsidyApplicationPayNoticeQueryVO queryVO);


    /**
     * 根据补贴申请支付通知ID查询补贴申请支付通知
     *
     * @param subsidyApplicationPayNoticeId 补贴申请支付通知ID
     * @return 补贴申请支付通知VO
     */
    LindiSubsidyApplicationPayNoticeVO getSubsidyApplicationPayNoticeBySubsidyApplicationPayNoticeId(Long subsidyApplicationPayNoticeId);

    /**
     * 根据补贴申请ID查询支付通知列表
     *
     * @param subsidyApplicationId 补贴申请ID
     * @return 支付通知列表
     */
    List<LindiSubsidyApplicationPayNoticeVO> getSubsidyApplicationPayNoticeListBySubsidyApplicationId(Long subsidyApplicationId);
}
